﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

// para el JSON
using System.Web.Script.Serialization;
using System.Web.Script.Services;

// y esto es lo que se nesesitha

using Intelsi.Entity;
using Intelsi.BusinessLogic;
using Microsoft.Practices.Unity;
using Microsoft.Practices.Unity.Configuration;



namespace Intelsi.WB.Service
{
    /// <summary>
    /// Descripción breve de ProyectoService 
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // Para permitir que se llame a este servicio Web desde un script, usando ASP.NET AJAX, quite la marca de comentario de la línea siguiente. 
    // [System.Web.Script.Services.ScriptService]
    public class ProyectoService : System.Web.Services.WebService
    {

        [Dependency]
        public IProyectoBL proyectoBL { get; set; }




        public ProyectoService()
        {
            using (var container = new UnityContainer())
            {
                container.LoadConfiguration();
                container.BuildUp(this.GetType(), this); 
            }
        }


        [WebMethod]
        [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
        public void GetFromProyectoBYCriterio(string term)
        {
            var query = from c in proyectoBL.GetAllFromProyectoByCriterio(term)
                        orderby (c.IdProyecto) descending

                        select new
                        {
                            value = c.IdProyecto,
                            label = c.Descripcion,
                            proyecto = new {ordenServicio =c.OrdenServicio,
                                            empresa=c.Empresa}

                        };

            var json = new JavaScriptSerializer();

            Context.Response.ContentType = "application/json; charset=utf-8";
            Context.Response.Write(json.Serialize(query.Skip(0).Take(10).ToList()));
            Context.Response.End();  

                        
        }
    
    }
}
